Notebook Interface
   HOME

TheInfoList



OR:

A notebook interface (also called a computational notebook) is a virtual
notebook A notebook (also known as a notepad, writing pad, drawing pad, or legal pad) is a book or stack of paper pages that are often ruled and used for purposes such as note-taking, journaling or other writing, drawing, or scrapbooking. History ...
environment used for
literate programming Literate programming is a programming paradigm introduced in 1984 by Donald Knuth in which a computer program is given as an explanation of its logic in a natural language, such as English, interspersed (embedded) with snippets of macros and t ...
, a method of writing computer programs. Some notebooks are
WYSIWYG In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
environments including executable calculations embedded in formatted documents; others separate calculations and text into separate sections. Modular notebooks may connect to a variety of computational back ends, called "kernels". Notebook interfaces are widely used for
statistics Statistics (from German language, German: ''wikt:Statistik#German, Statistik'', "description of a State (polity), state, a country") is the discipline that concerns the collection, organization, analysis, interpretation, and presentation of ...
,
data science Data science is an interdisciplinary field that uses scientific methods, processes, algorithms and systems to extract or extrapolate knowledge and insights from noisy, structured and unstructured data, and apply knowledge from data across a br ...
,
machine learning Machine learning (ML) is a field of inquiry devoted to understanding and building methods that 'learn', that is, methods that leverage data to improve performance on some set of tasks. It is seen as a part of artificial intelligence. Machine ...
, and computer algebra. At the notebook core is the idea of literate programming tools which "let you arrange the parts of a program in any order and extract documentation and code from the same source file.", the notebook takes this approach to a new level extending it with some graphic functionality and a focus on
interactivity Across the many fields concerned with interactivity, including information science, computer science, human-computer interaction, communication, and industrial design, there is little agreement over the meaning of the term "interactivity", but m ...
. According to
Stephen Wolfram Stephen Wolfram (; born 29 August 1959) is a British-American computer scientist, physicist, and businessman. He is known for his work in computer science, mathematics, and theoretical physics. In 2012, he was named a fellow of the American Ma ...
: "The idea of a notebook is to have an interactive document that freely mixes code, results, graphics, text and everything else.", and according to the Jupyter Project Documentation: "The notebook extends the console-based approach to
interactive computing In computer science, interactive computing refers to software which accepts input from the user as it runs. Interactive software includes commonly used programs, such as word processors or spreadsheet applications. By comparison, non-interactive ...
in a qualitatively new direction, providing a web-based application suitable for capturing the whole computation process: developing, documenting, and executing code, as well as communicating the results. The Jupyter notebook combines two components".


History

Research on WYSIWYG mathematical systems supporting mixed text and calculations with a document metaphor begin to be published in 1987: Ron Avitzur's ''Milo'', William Schelter's ''INFOR'',
Xerox PARC PARC (Palo Alto Research Center; formerly Xerox PARC) is a research and development company in Palo Alto, California. Founded in 1969 by Jacob E. "Jack" Goldman, chief scientist of Xerox Corporation, the company was originally a division of Xero ...
's ''Tioga'' and ''CaminoReal''. The earliest commercial system using the document metaphor was '' MathCAD'', which also came out in 1987. ''
Wolfram Mathematica Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allow machine learning, statistics, symbolic computation, data manipulation, network analysis, time series analysis, NLP, optimizat ...
'' 1.0 followed soon afterwards (1988). Later came ''
Maple ''Acer'' () is a genus of trees and shrubs commonly known as maples. The genus is placed in the family Sapindaceae.Stevens, P. F. (2001 onwards). Angiosperm Phylogeny Website. Version 9, June 2008 nd more or less continuously updated since http ...
'' 5.2 (1992) and '' Macsyma 2.0'' (1995). As the notebook interface increased in popularity over the next two decades, notebooks for various computational back ends ("kernels") have been introduced, including
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation ...
,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
,
Julia Julia is usually a feminine given name. It is a Latinate feminine form of the name Julio and Julius. (For further details on etymology, see the Wiktionary entry "Julius".) The given name ''Julia'' had been in use throughout Late Antiquity (e.g ...
, Scala, SQL, and others.


Use

Notebooks are traditionally used in the sciences as
electronic lab notebook An electronic lab notebook (also known as electronic laboratory notebook, or ELN) is a computer program designed to replace paper laboratory notebooks. Lab notebooks in general are used by scientists, engineers, and technicians to document resear ...
s to document research procedures, data, calculations, and findings. Notebooks track methodology to make it easier to reproduce results and calculations with different data sets. In
education Education is a purposeful activity directed at achieving certain aims, such as transmitting knowledge or fostering skills and character traits. These aims may include the development of understanding, rationality, kindness, and honesty. Va ...
, the notebook interface provides a digital learning environment, particularly for the teaching of
computational thinking Computational thinking (CT) is the mental skill to apply concepts, methods, problem solving techniques, and logic reasoning, derived from computing and computer science, to solve problems in all areas, including our daily lives. In education, CT ...
. Their utility for combining text with code makes them unique in the realm of education. Digital notebooks are sometimes used for presentations as an alternative to
PowerPoint Microsoft PowerPoint is a presentation program, created by Robert Gaskins and Dennis Austin at a software company named Forethought, Inc. It was released on April 20, 1987, initially for Macintosh computers only. Microsoft acquired PowerPoi ...
and other presentation software, as they allow for the execution of code inside the notebook environment. Due to their ability to display data visually and retrieve data from different sources by modifying code, notebooks are also entering the realm of
business intelligence software Business intelligence software is a type of application software designed to retrieve, analyze, transform and report data for business intelligence. The applications generally read data that has been previously stored, often - though not necessaril ...
.


Notable examples

Example of projects or products of notebooks:


Free/open-source notebooks

* Apache Zeppelin — Apache License 2.0 * Apache Spark Notebook — Apache License 2.0 * IPython
BSD The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
*
Jupyter Notebook Project Jupyter () is a project with goals to develop open-source software, open standards, and services for interactive computing across multiple programming languages. It was spun off from IPython in 2014 by Fernando Pérez and Brian Granger ...
(formerly IPython) —
Modified BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
(shared copyright model)
Google Colaboratory
— No setup Jupyter notebook environment —
Free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...

Amazon SageMaker
--- ML Focused Jupyter notebook environment --- Free Basic Access

- jupyter notebook interface/frontend notebooks for Jetbrains IDEs, this is a premium feature but source code can be foun
here

VSCode Notebook Support
- jupyter notebook interface/frontend an
API
for VSCode * JupyterLab — Revised BSD License
Starboard
- A shareable In-browser literal notebook, source code can be foun
here
* Mozilla Iodide —
MPL 2.0 The Mozilla Public License (MPL) is a free and open-source weak copyleft license for most Mozilla Foundation software such as Firefox and Thunderbird The MPL license is developed and maintained by Mozilla, which seeks to balance the concerns ...
; development in alpha stage
R Markdown
— GPLv3; source code can be foun
here
*
SageMath SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, numbe ...
GPLv3 The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...
*
Org-mode Org Mode (also: ''org-mode''; ) is a document editing, formatting, and organizing mode, designed for notes, planning, and authoring within the free software text editor Emacs. The name is used to encompass plain text files ("org files") that incl ...
on emacs (with the built-in babel addon) — GPL
Xamarin Workbooks
for DotNet — MIT
Polynote
Apache License 2.0 *
GNU TeXmacs GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It originated as GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by Jori ...
(a document processor which can act as notebook interface as well) — GPLv3 *Javalí Notebooks: Java based notebooks environment and LMS with debugging and unit test support, designed for the academy, a presentation video can be foun
here
,


Partial copyleft

*
SMath Studio SMath Studio is a freeware (free of charge, but not libre), closed-source, mathematical notebook program similar to Mathcad. It is available for Windows, Linux, iOS, Android, Universal Windows Platform, and on some handhelds. Among its capabili ...
— Freeware, not libre: licensed under Creative Commons Attribution-No Derivatives


Proprietary notebooks

*
Wolfram Mathematica Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allow machine learning, statistics, symbolic computation, data manipulation, network analysis, time series analysis, NLP, optimizat ...
* Mathcad *
Matlab MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation ...
— Live Editor since 2016. * Noteable * Noteable * Deepnote * Carbide *
Databricks Databricks is an American enterprise software company founded by the creators of Apache Spark. Databricks develops a web-based platform for working with Spark, that provides automated cluster management and IPython-style notebooks. History Data ...
cloud (founded 2013). * Datalore * Nextjournal * Observable — Uses open-source components, but the look and feel are proprietary *
WolframAlpha WolframAlpha ( ) is an answer engine developed by Wolfram Research. It answers factual queries by computing answers from externally sourced data. WolframAlpha was released on May 18, 2009 and is based on Wolfram's earlier product Wolfram Mathe ...
Notebooks


References

{{Reflist Graphical user interfaces Literate programming Technical communication tools